MiniMat: Matrix Language in OCaml LLVM
نویسنده
چکیده
2 Language Tutorial 4 2.1 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.2 Compiling a MiniMat source program . . . . . . . . . . . . . . . . . . . . . . 4 2.3 Tutorial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.3.1 Defining a matrix literal . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.3.2 Matrix size attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.3.3 Defining a matrix function . . . . . . . . . . . . . . . . . . . . . . . . 5 2.3.4 Matrix function arguments . . . . . . . . . . . . . . . . . . . . . . . . 5 2.3.5 Matrix operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.3.6 Augmenting matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.3.7 Defining a sequence literal . . . . . . . . . . . . . . . . . . . . . . . . 7 2.3.8 Matrix references . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.3.9 Loops and conditionals . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.3.10 Additional data types . . . . . . . . . . . . . . . . . . . . . . . . . . 8
منابع مشابه
A Certified JavaScript Interpreter
The JavaScript language was initially developed for web pages enrichment, allowing the execution of scripts by the browser. It is now pervasively used on the web, not only to add interactivity in websites or to embed contents from third-party sources, but also as a target platform for deploying applications written in other languages (such as ocaml bytecode [VB11], Hop [SGL06], or LLVM assembly...
متن کاملArray Optimizations in OCaml
OCaml is a modern programming language with many advanced features, yet its strict sequential semantics and consequent lack of support for locality-enhancement optimizations on arrays prohibit its use in numerically intensive computation. In this paper we show that it is possible to perform such optimizations by creating safe regions in which array bounds checking is unnecessary. These optimiza...
متن کاملSpoc: GPGPU Programming through Stream Processing with OCaml
ions Skeletons and Composition : Tomorrow 4:30pm OpenGPU workshop DSL Embedded language to express kernel Real World Use Case 2DRMP : Dimensional R-matrix propagation (Computer Physics Communications) Simulates electron scattering from H-like atoms and ions at intermediate energies Multi-Architecture: MultiCore, GPGPU, Clusters, GPU Clusters Translate from Fortran + Cuda to OCaml+SPOC + Cuda/Op...
متن کاملLLVM: A Compilation Framework for Lifelong Program Analysis & Transformation
This paper describes LLVM (Low Level Virtual Machine), a compiler framework designed to support transparent, lifelong program analysis and transformation for arbitrary programs, by providing high-level information to compiler transformations at compile-time, link-time, run-time, and in idle time between runs. LLVM defines a common, low-level code representation in Static Single Assignment (SSA)...
متن کاملDeciding Probabilistic Program Equivalence in NetKAT
We tackle the problem of deciding whether a pair of probabilistic programs are equivalent in the context of Probabilistic NetKAT, a formal language for reasoning about the behavior of packet-switched networks. We show that the problem is decidable for the history-free fragment of the language. The main challenge lies in reasoning about iteration, which we address by a reduction to nite-state ab...
متن کامل